home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-bgp-application-02.txt < prev    next >
Text File  |  1993-09-27  |  44KB  |  1,182 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8. Network Working Group                                         Y. Rekhter
  9. INTERNET DRAFT                    T.J. Watson Research Center, IBM Corp.
  10.                                                                 P. Gross
  11.                                                                      ANS
  12.                                                                  Editors
  13.                                                              August 1993
  14.  
  15.  
  16.  
  17.        Application of the Border Gateway Protocol in the Internet
  18.  
  19.  
  20. Status of this Memo
  21.  
  22.  
  23.    This document, together with its companion document, "A Border
  24.    Gateway Gateway Protocol 4 (BGP-4)", define an inter-autonomous
  25.    system routing protocol for the Internet. This RFC specifies an IAB
  26.    standards track protocol for the Internet community, and requests
  27.    discussion and suggestions for improvements.  Please refer to the
  28.    current edition of the "IAB Official Protocol Standards" for the
  29.    standardization state and status of this protocol.  Distribution of
  30.    this document is unlimited.
  31.  
  32.    This document is an Internet Draft. Internet Drafts are working
  33.    documents of the Internet Engineering Task Force (IETF), its Areas,
  34.    and its Working Groups. Note that other groups may also distribute
  35.    working documents as Internet Drafts.
  36.  
  37.    Internet Drafts are draft documents valid for a maximum of six
  38.    months. Internet Drafts may be updated, replaced, or obsoleted by
  39.    other documents at any time. It is not appropriate to use Internet
  40.    Drafts as reference material or to cite them other than as a "working
  41.    draft" or "work in progress".
  42.  
  43.  
  44. Abstract
  45.  
  46.  
  47.    This document, together with its companion document, "A Border
  48.    Gateway Protocol 4 (BGP-4)", define an inter-autonomous system
  49.    routing protocol for the Internet.  "A Border Gateway Protocol 4
  50.    (BGP-4)" defines the BGP protocol specification, and this document
  51.    describes the usage of the BGP in the Internet.
  52.  
  53.    Information about the progress of BGP can be monitored and/or
  54.    reported on the BGP mailing list (bgp@ans.net).
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. Expiration Date February 1994                                   [Page 1]
  65.  
  66.                            - 2 -
  67.  
  68.  
  69.  
  70. Acknowledgements
  71.  
  72.  
  73.    This document was original published as RFC 1164 in June 1990,
  74.    jointly authored by Jeffrey C. Honig (Cornell University), Dave Katz
  75.    (MERIT), Matt Mathis (PSC), Yakov Rekhter (IBM), and Jessica Yu
  76.    (MERIT).
  77.  
  78.    The following also made key contributions to RFC 1164 -- Guy Almes
  79.    (ANS, then at Rice University), Kirk Lougheed (cisco Systems), Hans-
  80.    Werner Braun (SDSC, then at MERIT), and Sue Hares (MERIT).
  81.  
  82.    We like to explicitly thank Bob Braden (ISI) for the review of the
  83.    previous version of this document.
  84.  
  85.    This updated version of the document is the product of the IETF BGP
  86.    Working Group with Phill Gross (ANS) and Yakov Rekhter (IBM) as
  87.    editors.
  88.  
  89.    John Moy (Proteon) contributed Section 7 "Required set of supported
  90.    routing policies".
  91.  
  92.    Scott Brim (Cornell University) contributed the basis for Section 8
  93.    "Interaction with other exterior routing protocols".
  94.  
  95.    Most of the text in Section 9 was contributed by Gerry Meyer
  96.    (Spider).
  97.  
  98.    Parts of the Introduction were taken almost verbatim from [3].
  99.  
  100.    We would like to acknowledge Dan Long (NEARNET) and Tony Li (cisco
  101.    Systems) for their review and comments on the current version of the
  102.    document.
  103.  
  104. 1. Introduction
  105.  
  106.  
  107.    This memo describes the use of the Border Gateway Protocol (BGP) [1]
  108.    in the Internet environment. BGP is an inter-Autonomous System
  109.    routing protocol. The network reachability information exchanged via
  110.    BGP provides sufficient information to detect routing loops and
  111.    enforce routing decisions based on performance preference and policy
  112.    constraints as outlined in RFC 1104 [2]. In particular, BGP exchanges
  113.    routing information containing full AS paths and enforces routing
  114.    policies based on configuration information.
  115.  
  116.    As the Internet has evolved and grown over in recent years, it has
  117.    become painfully evident that it is soon to face several serious
  118.    scaling problems. These include:
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126. Expiration Date February 1994                                   [Page 2]
  127.  
  128.                            - 3 -
  129.  
  130.  
  131.  
  132.        - Exhaustion of the class-B network address space. One
  133.          fundamental cause of this problem is the lack of a network
  134.          class of a size which is appropriate for mid-sized
  135.          organization; class-C, with a maximum of 254 host addresses, is
  136.          too small while class-B, which allows up to 65534 addresses, is
  137.          too large to be densely populated.
  138.  
  139.        - Growth of routing tables in Internet routers are beyond the
  140.          ability of current software (and people) to effectively manage.
  141.  
  142.        - Eventual exhaustion of the 32-bit IP address space.
  143.  
  144.    It has become clear that the first two of these problems are likely
  145.    to become critical within the next one to three years.  Classless
  146.    inter-domain routing (CIDR) attempts to deal with these problems by
  147.    proposing a mechanism to slow the growth of the routing table and the
  148.    need for allocating new IP network numbers. It does not attempt to
  149.    solve the third problem, which is of a more long-term nature, but
  150.    instead endeavors to ease enough of the short to mid-term
  151.    difficulties to allow the Internet to continue to function
  152.    efficiently while progress is made on a longer- term solution.
  153.  
  154.    BGP-4 is an extension of BGP-3 that provides support for routing
  155.    information aggregation and reduction based on the Classless inter-
  156.    domain routing architecture (CIDR) [3].  This memo describes the
  157.    usage of BGP-4 in the Internet.
  158.  
  159.    All of the discussions in this paper are based on the assumption that
  160.    the Internet is a collection of arbitrarily connected Autonomous
  161.    Systems. That is, the Internet will be modeled as a general graph
  162.    whose nodes are AS's and whose edges are connections between pairs of
  163.    AS's.
  164.  
  165.    The classic definition of an Autonomous System is a set of routers
  166.    under a single technical administration, using an interior gateway
  167.    protocol and common metrics to route packets within the AS and using
  168.    an exterior gateway protocol to route packets to other AS's. Since
  169.    this classic definition was developed, it has become common for a
  170.    single AS to use several interior gateway protocols and sometimes
  171.    several sets of metrics within an AS. The use of the term Autonomous
  172.    System here stresses the fact that, even when multiple IGPs and
  173.    metrics are used, the administration of an AS appears to other AS's
  174.    to have a single coherent interior routing plan and presents a
  175.    consistent picture of which networks are reachable through it.
  176.  
  177.    AS's are assumed to be administered by a single administrative
  178.    entity, at least for the purposes of representation of routing
  179.    information to systems outside of the AS.
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. Expiration Date February 1994                                   [Page 3]
  189.  
  190.                            - 4 -
  191.  
  192.  
  193.  
  194. 2. BGP Topological Model
  195.  
  196.  
  197.    When we say that a connection exists between two AS's, we mean two
  198.    things:
  199.  
  200.       Physical connection:  There is a shared network between the two
  201.       AS's, and on this shared network each AS has at least one border
  202.       gateway belonging to that AS. Thus the border gateway of each AS
  203.       can forward packets to the border gateway of the other AS without
  204.       resorting to Inter-AS or Intra-AS routing.
  205.  
  206.       BGP connection:  There is a BGP session between BGP speakers in
  207.       each of the AS's, and this session communicates those routes that
  208.       can be used for specific networks via the advertising AS.
  209.       Throughout this document we place an additional restriction on the
  210.       BGP speakers that form the BGP connection: they must themselves
  211.       share the same network that their border gateways share. Thus, a
  212.       BGP session between adjacent AS's requires no support from either
  213.       Inter-AS or Intra-AS routing. Cases that do not conform to this
  214.       restriction fall outside the scope of this document.
  215.  
  216.    Thus, at each connection, each AS has one or more BGP speakers and
  217.    one or more border gateways, and these BGP speakers and border
  218.    gateways are all located on a shared network. Note that BGP speakers
  219.    do not need to be a border gateway, and vice versa. Paths announced
  220.    by a BGP speaker of one AS on a given connection are taken to be
  221.    feasible for each of the border gateways of the other AS on the same
  222.    shared network, i.e. indirect neighbors are allowed.
  223.  
  224.    Much of the traffic carried within an AS either originates or
  225.    terminates at that AS (i.e., either the source IP address or the
  226.    destination IP address of the IP packet identifies a host on a
  227.    network internal to that AS).  Traffic that fits this description is
  228.    called "local traffic". Traffic that does not fit this description is
  229.    called "transit traffic". A major goal of BGP usage is to control the
  230.    flow of transit traffic.
  231.  
  232.    Based on how a particular AS deals with transit traffic, the AS may
  233.    now be placed into one of the following categories:
  234.  
  235.       stub AS: an AS that has only a single connection to one other AS.
  236.       Naturally, a stub AS only carries local traffic.
  237.  
  238.       multihomed AS: an AS that has connections to more than one other
  239.       AS, but refuses to carry transit traffic.
  240.  
  241.       transit AS: an AS that has connections to more than one other AS,
  242.       and is designed (under certain policy restrictions) to carry both
  243.       transit and local traffic.
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250. Expiration Date February 1994                                   [Page 4]
  251.  
  252.                            - 5 -
  253.  
  254.  
  255.  
  256.    Since a full AS path provides an efficient and straightforward way of
  257.    suppressing routing loops and eliminates the "count-to-infinity"
  258.    problem associated with some distance vector algorithms, BGP imposes
  259.    no topological restrictions on the interconnection of AS's.
  260.  
  261. 3. BGP in the Internet
  262.  
  263.  
  264. 3.1 Topology Considerations
  265.  
  266.  
  267.    The overall Internet topology may be viewed as an arbitrary
  268.    interconnection of transit, multihomed, and stub AS's.  In order to
  269.    minimize the impact on the current Internet infrastructure, stub and
  270.    multihomed AS's need not use BGP.  These AS's may run other protocols
  271.    (e.g., EGP) to exchange reachability information with transit AS's.
  272.    Transit AS's using BGP will tag this information as having been
  273.    learned by some method other than BGP. The fact that BGP need not run
  274.    on stub or multihomed AS's has no negative impact on the overall
  275.    quality of inter-AS routing for traffic that either destined to or
  276.    originated from the stub or multihomed AS's in question.
  277.  
  278.    However, it is recommended that BGP be used for stub and multihomed
  279.    AS's as well. In these situations, BGP will provide an advantage in
  280.    bandwidth and performance over some of the currently used protocols
  281.    (such as EGP).  In addition, this would reduce the need for the use
  282.    of default routes and in better choices of Inter-AS routes for
  283.    multihomed AS's.
  284.  
  285. 3.2 Global Nature of BGP
  286.  
  287.  
  288.    At a global level, BGP is used to distribute routing information
  289.    among multiple Autonomous Systems. The information flows can be
  290.    represented as follows:
  291.  
  292.  
  293.                     +-------+         +-------+
  294.               BGP   |  BGP  |   BGP   |  BGP  |   BGP
  295.            ---------+       +---------+       +---------
  296.                     |  IGP  |         |  IGP  |
  297.                     +-------+         +-------+
  298.  
  299.                     <-AS A-->         <--AS B->
  300.  
  301.  
  302.  
  303.    This diagram points out that, while BGP alone carries information
  304.    between AS's, both BGP and an IGP may carry information across an AS.
  305.    Ensuring consistency of routing information between BGP and an IGP
  306.    within an AS is a significant issue and is discussed at length later
  307.  
  308.  
  309.  
  310.  
  311.  
  312. Expiration Date February 1994                                   [Page 5]
  313.  
  314.                            - 6 -
  315.  
  316.  
  317.  
  318.    in Appendix A.
  319.  
  320. 3.3 BGP Neighbor Relationships
  321.  
  322.  
  323.    The Internet is viewed as a set of arbitrarily connected AS's. BGP
  324.    speakers in each AS communicate with each other to exchange network
  325.    reachability information based on a set of policies established
  326.    within each AS. Routers that communicate directly with each other via
  327.    BGP are known as BGP neighbors. BGP neighbors can be located within
  328.    the same AS or in different AS's. For the sake of discussion, BGP
  329.    communications with neighbors in different AS's will be referred to
  330.    as External BGP, and with neighbors in the same AS as Internal BGP.
  331.  
  332.    There can be as many BGP speakers as deemed necessary within an AS.
  333.    Usually, if an AS has multiple connections to other AS's, multiple
  334.    BGP speakers are needed. All BGP speakers representing the same AS
  335.    must give a consistent image of the AS to the outside. This requires
  336.    that the BGP speakers have consistent routing information among them.
  337.    These gateways can communicate with each other via BGP or by other
  338.    means. The policy constraints applied to all BGP speakers within an
  339.    AS must be consistent. Techniques such as using a tagged IGP (see
  340.    A.2.2) may be employed to detect possible inconsistencies.
  341.  
  342.    In the case of External BGP, the BGP neighbors must belong to
  343.    different AS's, but share a common network. This common network
  344.    should be used to carry the BGP messages between them. The use of BGP
  345.    across an intervening AS invalidates the AS path information. An
  346.    Autonomous System number must be used with BGP to specify which
  347.    Autonomous System the BGP speaker belongs to.
  348.  
  349. 4. Requirements for Route Aggregation
  350.  
  351.  
  352.    A conformant BGP-4 implementation is required to have the ability to
  353.    specify when an aggregated route may be generated out of partial
  354.    routing information. For example, a BGP speaker at the border of an
  355.    autonomous system (or group of autonomous systems) must be able to
  356.    generate an aggregated route for a whole set of destination IP
  357.    addresses (in BGP-4 terminology such a set is called the Network
  358.    Layer Reachability Information or NLRI) over which it has
  359.    administrative control, even when not all of them are reachable at
  360.    the same time.
  361.  
  362.    A conformant implementation may provide the capability to specify
  363.    when an aggregated NLRI may be generated.
  364.  
  365.    A conformant implementation is required to have the ability to
  366.    specify how NLRI may be de-aggregated.
  367.  
  368.    A conformant implementation is required to support the following
  369.  
  370.  
  371.  
  372.  
  373.  
  374. Expiration Date February 1994                                   [Page 6]
  375.  
  376.                            - 7 -
  377.  
  378.  
  379.  
  380.    options when dealing with overlapping routes:
  381.  
  382.  
  383.        - Install both the less and the more specific routes
  384.  
  385.        - Install the more specific route only
  386.  
  387.        - Install the less specific route only
  388.  
  389.        - Install neither route
  390.  
  391.    By default a BGP speaker should aggregate NLRI representing subnets
  392.    to the corresponding network.
  393.  
  394.    Injecting NLRI representing arbitrary subnets into BGP without
  395.    aggregation to the corresponding network shall be controlled via
  396.    configuration parameters.
  397.  
  398.    Certain routing policies may depend on the NLRI (e.g. "research"
  399.    versus "commercial"). Therefore, a BGP speaker that performs route
  400.    aggregation should be cognizant, if possible, of potential
  401.    implications on routing policies when aggregating NLRI.
  402.  
  403. 5. Policy Making with BGP
  404.  
  405.  
  406.    BGP provides the capability for enforcing policies based on various
  407.    routing preferences and constraints. Policies are not directly
  408.    encoded in the protocol. Rather, policies are provided to BGP in the
  409.    form of configuration information.
  410.  
  411.    BGP enforces policies by affecting the selection of paths from
  412.    multiple alternatives and by controlling the redistribution of
  413.    routing information.  Policies are determined by the AS
  414.    administration.
  415.  
  416.    Routing policies are related to political, security, or economic
  417.    considerations. For example, if an AS is unwilling to carry traffic
  418.    to another AS, it can enforce a policy prohibiting this. The
  419.    following are examples of routing policies that can be enforced with
  420.    the use of BGP:
  421.  
  422.  
  423.      1.  A multihomed AS can refuse to act as a transit AS for other
  424.          AS's.  (It does so by only advertising routes to networks
  425.          internal to the AS.)
  426.  
  427.      2.  A multihomed AS can become a transit AS for a restricted set of
  428.          adjacent AS's, i.e., some, but not all, AS's can use the
  429.          multihomed AS as a transit AS. (It does so by advertising its
  430.          routing information to this set of AS's.)
  431.  
  432.  
  433.  
  434.  
  435.  
  436. Expiration Date February 1994                                   [Page 7]
  437.  
  438.                            - 8 -
  439.  
  440.  
  441.  
  442.      3.  An AS can favor or disfavor the use of certain AS's for
  443.          carrying transit traffic from itself.
  444.  
  445.    A number of performance-related criteria can be controlled with the
  446.    use of BGP:
  447.  
  448.  
  449.      1.  An AS can minimize the number of transit AS's. (Shorter AS
  450.          paths can be preferred over longer ones.)
  451.  
  452.      2.  The quality of transit AS's. If an AS determines that two or
  453.          more AS paths can be used to reach a given destination, that AS
  454.          can use a variety of means to decide which of the candidate AS
  455.          paths it will use. The quality of an AS can be measured by such
  456.          things as diameter, link speed, capacity, tendency to become
  457.          congested, and quality of operation. Information about these
  458.          qualities might be determined by means other than BGP.
  459.  
  460.      3.  Preference of internal routes over external routes.
  461.  
  462.    For consistency within an AS, equal cost paths, resulting from
  463.    combinations of policies and/or normal route selection procedures,
  464.    must be resolved in a consistent fashion.
  465.  
  466.    Fundamental to BGP is the rule that an AS advertises to its
  467.    neighboring AS's only those routes that it uses. This rule reflects
  468.    the "hop-by-hop" routing paradigm generally used by the current
  469.    Internet.
  470.  
  471. 6. Path Selection with BGP
  472.  
  473.    One of the major tasks of a BGP speaker is to evaluate different
  474.    paths to a destination network from its border gateways at that
  475.    network, select the best one, apply appropriate policy constraints,
  476.    and then advertise it to all of its BGP neighbors. The key issue is
  477.    how different paths are evaluated and compared.  In traditional
  478.    distance vector protocols (e.g., RIP) there is only one metric (e.g.,
  479.    hop count) associated with a path. As such, comparison of different
  480.    paths is reduced to simply comparing two numbers. A complication in
  481.    Inter-AS routing arises from the lack of a universally agreed-upon
  482.    metric among AS's that can be used to evaluate external paths.
  483.    Rather, each AS may have its own set of criteria for path evaluation.
  484.  
  485.    A BGP speaker builds a routing database consisting of the set of all
  486.    feasible paths and the list of networks reachable through each path.
  487.    For purposes of precise discussion, it's useful to consider the set
  488.    of feasible paths for a given destination network. In most cases, we
  489.    would expect to find only one feasible path. However, when this is
  490.    not the case, all feasible paths should be maintained, and their
  491.    maintenance speeds adaptation to the loss of the primary path. Only
  492.    the primary path at any given time will ever be advertised.
  493.  
  494.  
  495.  
  496.  
  497.  
  498. Expiration Date February 1994                                   [Page 8]
  499.  
  500.                            - 9 -
  501.  
  502.  
  503.  
  504.    The path selection process can be formalized by defining a partial
  505.    order over the set of all feasible paths to a given destination
  506.    network. One way to define this partial order is to define a function
  507.    that maps each full AS path to a non-negative integer that denotes
  508.    the path's degree of preference. Path selection is then reduced to
  509.    applying this function to all feasible paths and choosing the one
  510.    with the lowest degree of preference.
  511.  
  512.    In actual BGP implementations, the criteria for assigning degree of
  513.    preferences to a path are specified as configuration information.
  514.  
  515.    The process of assigning a degree of preference to a path can be
  516.    based on several sources of information:
  517.  
  518.  
  519.  
  520.      1.  Information explicitly present in the full AS path.
  521.  
  522.      2.  A combination of information that can be derived from the full
  523.          AS path and information outside the scope of BGP (e.g., policy
  524.          routing constraints provided as configuration information).
  525.  
  526.    Possible criteria for assigning a degree of preference to a path are:
  527.  
  528.  
  529.        - AS count. Paths with a smaller AS count are generally better.
  530.  
  531.        - Policy considerations. BGP supports policy-based routing based
  532.          on the controlled distribution of routing information.  A BGP
  533.          speaker may be aware of some policy constraints (both within
  534.          and outside of its own AS) and do appropriate path selection.
  535.          Paths that do not comply with policy requirements are not
  536.          considered further.
  537.  
  538.        - Presence or absence of a certain AS or AS's in the path. By
  539.          means of information outside the scope of BGP, an AS may know
  540.          some performance characteristics (e.g., bandwidth, MTU, intra-
  541.          AS diameter) of certain AS's and may try to avoid or prefer
  542.          them.
  543.  
  544.        - Path origin. A path learned entirely from BGP (i.e., whose
  545.          endpoint is internal to the last AS on the path) is generally
  546.          better than one for which part of the path was learned via EGP
  547.          or some other means.
  548.  
  549.        - AS path subsets. An AS path that is a subset of a longer AS
  550.          path to the same destination should be preferred over the
  551.          longer path.  Any problem in the shorter path (such as an
  552.          outage) will also be a problem in the longer path.
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560. Expiration Date February 1994                                   [Page 9]
  561.  
  562.                            - 10 -
  563.  
  564.  
  565.  
  566.        - Link dynamics. Stable paths should be preferred over unstable
  567.          ones. Note that this criterion must be used in a very careful
  568.          way to avoid causing unnecessary route fluctuation. Generally,
  569.          any criteria that depend on dynamic information might cause
  570.          routing instability and should be treated very carefully.
  571.  
  572. 7. Required set of supported routing policies.
  573.  
  574.  
  575.    Policies are provided to BGP in the form of configuration
  576.    information.  This information is not directly encoded in the
  577.    protocol. Therefore, BGP can provide support for very complex routing
  578.    policies. However, it is not required that all BGP implementations
  579.    support such policies.
  580.  
  581.    We are not attempting to standardize the routing policies that must
  582.    be supported in every BGP implementation; we strongly encourage all
  583.    implementors to support the following set of routing policies:
  584.  
  585.  
  586.      1.  BGP implementations should allow an AS to control announcements
  587.          of BGP-learned routes to adjacent AS's.  Implementations should
  588.          also support such control with at least the granularity of a
  589.          single network.  Implementations should also support such
  590.          control with the granularity of an autonomous system, where the
  591.          autonomous system may be either the autonomous system that
  592.          originated the route, or the autonomous system that advertised
  593.          the route to the local system (adjacent autonomous system).
  594.          Care must be taken when a BGP speaker selects a new route that
  595.          can't be announced to a particular external peer, while the
  596.          previously selected route was announced to that peer.
  597.          Specifically, the local system must explicitly indicate to the
  598.          peer that the previous route is now infeasible.
  599.  
  600.      2.  BGP implementations should allow an AS to prefer a particular
  601.          path to a destination (when more than one path is available).
  602.          This function may be implemented by allowing system
  603.          administrators to assign "weights" to AS's, and by having the
  604.          route selection process select a route with the lowest "weight"
  605.          (where "weight" of a route is defined as a sum of "weights" of
  606.          all AS's in the AS_PATH path attribute associated with that
  607.          route).
  608.  
  609.      3.  BGP implementations should allow an AS to ignore routes with
  610.          certain AS's in the AS_PATH path attribute.  Such function can
  611.          be implemented by using the technique outlined in [2], and by
  612.          assigning "infinity" as "weights" for such AS's. The route
  613.          selection process must ignore routes that have "weight" equal
  614.          to "infinity".
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622. Expiration Date February 1994                                  [Page 10]
  623.  
  624.                            - 11 -
  625.  
  626.  
  627.  
  628. 8. Interaction with other exterior routing protocols
  629.  
  630.  
  631.    The guidelines suggested in this section are consistent with the
  632.    guidelines presented in [3].
  633.  
  634.    An AS should advertise a minimal aggregate for its internal networks
  635.    with respect to the amount of address space that it is actually
  636.    using.  This can be used by administrators of non-BGP 4 AS's to
  637.    determine how many routes to explode from a single aggregate.
  638.  
  639.    A route that carries the ATOMIC_AGGREGATE path attribute shall not be
  640.    exported into either BGP-3 or EGP2, unless such an exportation can be
  641.    accomplished without exploding the NLRI of the route.
  642.  
  643. 8.1 Exchanging information with EGP2
  644.  
  645.  
  646.    This document suggests the following guidelines for exchanging
  647.    routing information between BGP-4 and EGP2.
  648.  
  649.    To provide for graceful migration, a BGP speaker may participate in
  650.    EGP2, as well as in BGP-4. Thus, a BGP speaker may receive IP
  651.    reachability information by means of EGP2 as well as by means of
  652.    BGP-4.  The information received by EGP2 can be injected into BGP-4
  653.    with the ORIGIN path attribute set to 1.  Likewise,  the information
  654.    received via BGP-4 can be injected into EGP2 as well. In the latter
  655.    case, however, one needs to be aware of the potential information
  656.    explosion when a given IP prefix received from BGP-4 denotes a set of
  657.    consecutive A/B/C class networks.  Injection of BGP-4 received NLRI
  658.    that denotes IP subnets requires the BGP speaker to inject the
  659.    corresponding network into EGP2.  The local system shall provide
  660.    mechanisms to control the exchange of reachability information
  661.    between EGP2 and BGP-4.  Specifically, a conformant implementation is
  662.    required to support all of the following options when injecting BGP-4
  663.    received reachability information into EGP2:
  664.  
  665.  
  666.        - inject default only (0.0.0.0); no export of any other NLRI
  667.  
  668.        - allow controlled deaggregation, but only of specific routes;
  669.          allow export of non-aggregated NLRI
  670.  
  671.    The exchange of routing information via EGP2 between a BGP speaker
  672.    participating in BGP-4 and a pure EGP2 speaker may occur  only at the
  673.    domain (autonomous system) boundaries.
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684. Expiration Date February 1994                                  [Page 11]
  685.  
  686.                            - 12 -
  687.  
  688.  
  689.  
  690. 8.2 Exchanging information with BGP-3
  691.  
  692.  
  693.  
  694.    This document suggests the following guidelines for exchanging
  695.    routing information between BGP-4 and BGP-3.
  696.  
  697.    To provide for graceful migration, a BGP speaker may participate in
  698.    BGP-3, as well as in BGP-4. Thus, a BGP speaker may receive IP
  699.    reachability information by means of BGP-3, as well as by means of
  700.    BGP-4.
  701.  
  702.    A BGP speaker may inject the information received by BGP-4 into BGP-3
  703.    as follows.
  704.  
  705.    If an AS_PATH attribute of a BGP-4 route carries AS_SET path
  706.    segments, then the AS_PATH attribute of the BGP-3 route shall be
  707.    constructed by treating the AS_SET segments as AS_SEQUENCE segments,
  708.    with the resulting AS_PATH being a single AS_SEQUENCE. While this
  709.    procedure loses set/sequence information, it doesn't affect
  710.    protection for routing loops suppression, but may affect policies, if
  711.    the policies are based on the content or ordering of the AS_PATH
  712.    attribute.
  713.  
  714.    While injecting BGP-4 derived NLRI into BGP-3, one needs to be aware
  715.    of the potential information explosion when a given IP prefix denotes
  716.    a set of consecutive A/B/C class networks. Injection of BGP-4 derived
  717.    NLRI that denotes IP subnets requires the BGP speaker to inject the
  718.    corresponding network into BGP-3. The local system shall provide
  719.    mechanisms to control the exchange of routing information between
  720.    BGP-3 and BGP-4.  Specifically, a conformant implementation is
  721.    required to support all of the following options when injecting BGP-4
  722.    received routing information into BGP-3:
  723.  
  724.  
  725.        - inject default only (0.0.0.0), no export of any other NLRI
  726.  
  727.        - allow controlled deaggregation, but only of specific routes;
  728.          allow export of non-aggregated NLRI
  729.  
  730.        - allow export of only non-aggregated NLRI
  731.  
  732.    The exchange of routing information via BGP-3 between a BGP speaker
  733.    participating in BGP-4 and a pure BGP-3 speaker may occur  only at
  734.    the autonomous system boundaries. Within a single autonomous system
  735.    BGP conversations between all the BGP speakers of that autonomous
  736.    system have to be either BGP-3 or BGP-4, but not a mixture.
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746. Expiration Date February 1994                                  [Page 12]
  747.  
  748.                            - 13 -
  749.  
  750.  
  751.  
  752. 9. Operations over Switched Virtual Circuits
  753.  
  754.  
  755.    When using BGP over Switched Virtual Circuit (SVC) subnetworks it may
  756.    be desireable to minimize traffic generated by BGP. Specifically, it
  757.    may be desireable to eliminate traffic associated with periodic
  758.    KEEPALIVE messages.  BGP includes a mechanism for operation over
  759.    switched virtual circuit (SVC) services which avoids keeping SVCs
  760.    permanently open and allows it to eliminates periodic sending of
  761.    KEEPALIVE messages.
  762.  
  763.    This section describes how to operate without periodic KEEPALIVE
  764.    messages to minimise SVC usage when using an intelligent SVC circuit
  765.    manager.  The proposed scheme may also be used on "permanent"
  766.    circuits, which support a feature like link quality monitoring or
  767.    echo request to determine the status of link connectivity.
  768.  
  769.    The mechanism described in this section is suitable only between the
  770.    BGP speakers that are directly connected over a common virtual
  771.    circuit.
  772.  
  773. 9.1 Establishing a BGP Connection
  774.  
  775.  
  776.    The feature is selected by specifying zero Hold Time in the OPEN
  777.    message.
  778.  
  779. 9.2 Circuit Manager Properties
  780.  
  781.  
  782.    The circuit manager must have sufficient functionality to be able to
  783.    compensate for the lack of periodic KEEPALIVE messages:
  784.  
  785.  
  786.        - It must be able to determine link layer unreachability in a
  787.          predictable finite period of a failure occurring.
  788.  
  789.        - On determining unreachability it should:
  790.  
  791.                 - start a configurable dead timer (comparable to a
  792.                   typical Hold timer value).
  793.  
  794.                 - attempt to re-establish the Link Layer connection.
  795.  
  796.  
  797.        - If the dead timer expires it should:
  798.  
  799.                 - send an internal circuit DEAD indication to TCP.
  800.  
  801.        - If the connection is re-established it should:
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808. Expiration Date February 1994                                  [Page 13]
  809.  
  810.                            - 14 -
  811.  
  812.  
  813.  
  814.                 - cancel the dead timer.
  815.  
  816.                 - send an internal circuit UP indication to TCP.
  817.  
  818.  
  819. 9.3 TCP Properties
  820.  
  821.  
  822.    A small modification must be made to TCP to process internal
  823.    notifications from the circuit manager:
  824.  
  825.        - DEAD: Flush transmit queue and abort TCP connection.
  826.  
  827.        - UP: Transmit any queued data or allow an outgoing TCP call to
  828.          proceed.
  829.  
  830.  
  831. 9.4 Combined Properties
  832.  
  833.  
  834.    Some implementations may not be able to guarantee that the BGP
  835.    process and the circuit manager will operate as a single entity; i.e.
  836.    they can have a separate existence when the other has been stopped or
  837.    has crashed.
  838.  
  839.    If this is the case, a periodic two-way poll between the BGP process
  840.    and the circuit manager should be implemented.  If the BGP process
  841.    discovers the circuit manager has gone away it should close all
  842.    relevant TCP connections.  If the circuit manager discovers the BGP
  843.    process has gone away it should close all its connections associated
  844.    with the BGP process and reject any further incoming connections.
  845.  
  846. 10. Conclusion
  847.  
  848.  
  849.    The BGP protocol provides a high degree of control and flexibility
  850.    for doing interdomain routing while enforcing policy and performance
  851.    constraints and avoiding routing loops. The guidelines presented here
  852.    will provide a starting point for using BGP to provide more
  853.    sophisticated and manageable routing in the Internet as it grows.
  854.  
  855. Appendix A. The Interaction of BGP and an IGP
  856.  
  857.  
  858.    This section outlines methods by which BGP can exchange routing
  859.    information with an IGP. The methods outlined here are not proposed
  860.    as part of the standard BGP usage at this time.  These methods are
  861.    outlined for information purposes only.  Implementors may want to
  862.    consider these methods when importing IGP information.
  863.  
  864.    This is general information that applies to any generic IGP.
  865.  
  866.  
  867.  
  868.  
  869.  
  870. Expiration Date February 1994                                  [Page 14]
  871.  
  872.                            - 15 -
  873.  
  874.  
  875.  
  876.    Interaction between BGP and any specific IGP is outside the scope of
  877.    this section.  Methods for specific IGP's should be proposed in
  878.    separate documents.  Methods for specific IGP's could be proposed for
  879.    standard usage in the future.
  880.  
  881. Overview
  882.  
  883.  
  884.    By definition, all transit AS's must be able to carry traffic which
  885.    originates from and/or is destined to locations outside of that AS.
  886.    This requires a certain degree of interaction and coordination
  887.    between BGP and the Interior Gateway Protocol (IGP) used by that
  888.    particular AS. In general, traffic originating outside of a given AS
  889.    is going to pass through both interior gateways (gateways that
  890.    support the IGP only) and border gateways (gateways that support both
  891.    the IGP and BGP). All interior gateways receive information about
  892.    external routes from one or more of the border gateways of the AS via
  893.    the IGP.
  894.  
  895.    Depending on the mechanism used to propagate BGP information within a
  896.    given AS, special care must be taken to ensure consistency between
  897.    BGP and the IGP, since changes in state are likely to propagate at
  898.    different rates across the AS. There may be a time window between the
  899.    moment when some border gateway (A) receives new BGP routing
  900.    information which was originated from another border gateway (B)
  901.    within the same AS, and the moment the IGP within this AS is capable
  902.    of routing transit traffic to that border gateway (B). During that
  903.    time window, either incorrect routing or "black holes" can occur.
  904.  
  905.    In order to minimize such routing problems, border gateway (A) should
  906.    not advertise a route to some exterior network X via border gateway
  907.    (B) to all of its BGP neighbors in other AS's until all the interior
  908.    gateways within the AS are ready to route traffic destined to X via
  909.    the correct exit border gateway (B). In other words, interior routing
  910.    should converge on the proper exit gateway before/advertising routes
  911.    via that exit gateway to other AS's.
  912.  
  913. A.2 Methods for Achieving Stable Interactions
  914.  
  915.  
  916.    The following discussion outlines several techniques capable of
  917.    achieving stable interactions between BGP and the IGP within an
  918.    Autonomous System.
  919.  
  920. A.2.1 Propagation of BGP Information via the IGP
  921.  
  922.  
  923.    While BGP can provide its own mechanism for carrying BGP information
  924.    within an AS, one can also use an IGP to transport this information,
  925.    as long as the IGP supports complete flooding of routing information
  926.    (providing the mechanism to distribute the BGP information) and one
  927.  
  928.  
  929.  
  930.  
  931.  
  932. Expiration Date February 1994                                  [Page 15]
  933.  
  934.                            - 16 -
  935.  
  936.  
  937.  
  938.    pass convergence (making the mechanism effectively atomic). If an IGP
  939.    is used to carry BGP information, then the period of
  940.    desynchronization described earlier does not occur at all, since BGP
  941.    information propagates within the AS synchronously with the IGP, and
  942.    the IGP converges more or less simultaneously with the arrival of the
  943.    new routing information. Note that the IGP only carries BGP
  944.    information and should not interpret or process this information.
  945.  
  946. A.2.2  Tagged Interior Gateway Protocol
  947.  
  948.  
  949.    Certain IGPs can tag routes exterior to an AS with the identity of
  950.    their exit points while propagating them within the AS. Each border
  951.    gateway should use identical tags for announcing exterior routing
  952.    information (received via BGP) both into the IGP and into Internal
  953.    BGP when propagating this information to other border gateways within
  954.    the same AS. Tags generated by a border gateway must uniquely
  955.    identify that particular border gateway--different border gateways
  956.    must use different tags.
  957.  
  958.    All Border Gateways within a single AS must observe the following two
  959.    rules:
  960.  
  961.  
  962.  
  963.      1.  Information received via Internal BGP by a border gateway A
  964.          declaring a network to be unreachable must immediately be
  965.          propagated to all of the External BGP neighbors of A.
  966.  
  967.      2.  Information received via Internal BGP by a border gateway A
  968.          about a reachable network X cannot be propagated to any of the
  969.          External BGP neighbors of A unless/until A has an IGP route to
  970.          X and both the IGP and the BGP routing information have
  971.          identical tags.
  972.  
  973.    These rules guarantee that no routing information is announced
  974.    externally unless the IGP is capable of correctly supporting it. It
  975.    also avoids some causes of "black holes".
  976.  
  977.    One possible method for tagging BGP and IGP routes within an AS is to
  978.    use the IP address of the exit border gateway announcing the exterior
  979.    route into the AS. In this case the "gateway" field in the BGP UPDATE
  980.    message is used as the tag.
  981.  
  982.    An alternate method for tagging BGP and IGP routes is to have BGP and
  983.    the IGP agree on a router ID.  In this case, the router ID is
  984.    available to all BGP (version 3 or higher) speakers.  Since this ID
  985.    is already unique it can be used directly as the tag in the IGP.
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. Expiration Date February 1994                                  [Page 16]
  995.  
  996.                            - 17 -
  997.  
  998.  
  999.  
  1000. A.2.3 Encapsulation
  1001.  
  1002.  
  1003.    Encapsulation provides the simplest (in terms of the interaction
  1004.    between the IGP and BGP) mechanism for carrying transit traffic
  1005.    across the AS. In this approach, transit traffic is encapsulated
  1006.    within an IP datagram addressed to the exit gateway. The only
  1007.    requirement imposed on the IGP by this approach is that it should be
  1008.    capable of supporting routing between border gateways within the same
  1009.    AS.
  1010.  
  1011.    The address of the exit gateway A for some exterior network X is
  1012.    specified in the BGP identifier field of the BGP OPEN message
  1013.    received from gateway A via Internal BGP by all other border gateways
  1014.    within the same AS. In order to route traffic to network X, each
  1015.    border gateway within the AS encapsulates it in datagrams addressed
  1016.    to gateway A. Gateway A then performs decapsulation and forwards the
  1017.    original packet to the proper gateway in another AS.
  1018.  
  1019.    Since encapsulation does not rely on the IGP to carry exterior
  1020.    routing information, no synchronization between BGP and the IGP is
  1021.    required.
  1022.  
  1023.    Some means of identifying datagrams containing encapsulated IP, such
  1024.    as an IP protocol type code, must be defined if this method is to be
  1025.    used.
  1026.  
  1027.    Note that, if a packet to be encapsulated has length that is very
  1028.    close to the MTU, that packet would be fragmented at the gateway that
  1029.    performs encapsulation.
  1030.  
  1031. A.2.4  Pervasive BGP
  1032.  
  1033.  
  1034.    If all routers in an AS are BGP speakers, then there is no need to
  1035.    have any interaction between BGP and an IGP.  In such cases, all
  1036.    routers in the AS already have full information of all BGP routes.
  1037.    The IGP is then only used for routing within the AS, and no BGP
  1038.    routes are imported into the IGP.
  1039.  
  1040.    For routers to operate in this fashion, they must be able to perform
  1041.    a recursive lookup in their routing table.  The first lookup will use
  1042.    a BGP route to establish the exit router, while the second lookup
  1043.    will determine the IGP path to the exit router.
  1044.  
  1045.    Since the IGP carries no external information in this scenario, all
  1046.    routers in the AS will have converged as soon as all BGP speakers
  1047.    have new information about this route.  Since there is no need to
  1048.    delay for the IGP to converge, an implementation may advertise these
  1049.    routes without further delay due to the IGP.
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056. Expiration Date February 1994                                  [Page 17]
  1057.  
  1058.                            - 18 -
  1059.  
  1060.  
  1061.  
  1062. A.2.5  Other Cases
  1063.  
  1064.  
  1065.    There may be AS's with IGPs which can neither carry BGP information
  1066.    nor tag exterior routes (e.g., RIP). In addition, encapsulation may
  1067.    be either infeasible or undesirable. In such situations, the
  1068.    following two rules must be observed:
  1069.  
  1070.  
  1071.      1.  Information received via Internal BGP by a border gateway A
  1072.          declaring a network to be unreachable must immediately be
  1073.          propagated to all of the External BGP neighbors of A.
  1074.  
  1075.      2.  Information received via Internal BGP by a border gateway A
  1076.          about a reachable network X cannot be propagated to any of the
  1077.          External BGP neighbors of A unless A has an IGP route to X and
  1078.          sufficient time has passed for the IGP routes to have
  1079.          converged.
  1080.  
  1081.    The above rules present necessary (but not sufficient) conditions for
  1082.    propagating BGP routing information to other AS's. In contrast to
  1083.    tagged IGPs, these rules cannot ensure that interior routes to the
  1084.    proper exit gateways are in place before propagating the routes to
  1085.    other AS's.
  1086.  
  1087.    If the convergence time of an IGP is less than some small value X,
  1088.    then the time window during which the IGP and BGP are unsynchronized
  1089.    is less than X as well, and the whole issue can be ignored at the
  1090.    cost of transient periods (of less than length X) of routing
  1091.    instability. A reasonable value for X is a matter for further study,
  1092.    but X should probably be less than one second.
  1093.  
  1094.    If the convergence time of an IGP cannot be ignored, a different
  1095.    approach is needed. Mechanisms and techniques which might be
  1096.    appropriate in this situation are subjects for further study.
  1097.  
  1098. References
  1099.  
  1100.  
  1101.    [1] Y. Rekhter and T. Li, "A Border Gateway Protocol 4 (BGP-4),
  1102.    Internet Draft, cisco Systems, T.J. Watson Research Center, IBM
  1103.    Corp., September 1992.
  1104.  
  1105.    [2] Braun, H-W., "Models of Policy Based Routing", RFC 1104,
  1106.    Merit/NSFNET, June 1989.
  1107.  
  1108.    [3] Fuller, V., Li, T., Yu, J., Varadhan, K., "Supernetting:  an
  1109.    Address Assignment and Aggregation Strategy", RFC1338, June 1992.
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118. Expiration Date February 1994                                  [Page 18]
  1119.  
  1120.                            - 19 -
  1121.  
  1122.  
  1123.  
  1124. Security Considerations
  1125.  
  1126.  
  1127.    Security issues are not discussed in this memo.
  1128.  
  1129. Authors' Addresses
  1130.  
  1131.  
  1132.    Yakov Rekhter
  1133.    T.J. Watson Research Center IBM Corporation
  1134.    P.O. Box 218
  1135.    Yorktown Heights, NY 10598
  1136.  
  1137.    Phone:  (914) 945-3896
  1138.    EMail: yakov@watson.ibm.com
  1139.  
  1140.  
  1141.    Phill Gross
  1142.    Advanced Network and Services (ANS)
  1143.    100 Clearbrook Road
  1144.    Elmsford, NY 10523
  1145.  
  1146.    Phone: (914) 789-5300
  1147.    Email: pgross@ans.net
  1148.  
  1149.    IETF BGP WG mailing list: bgp@ans.net
  1150.    To be added: bgp-request@ans.net
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180. Expiration Date February 1994                                  [Page 19]
  1181.  
  1182.